package cn.lili.trigger.interfaces;

import cn.lili.trigger.model.TimeTriggerMsg;

/**
 * 延时执行接口
 *
 * @author Chopper
 */
public interface TimeTrigger {

    /**
     * 添加延时任务
     *
     * @param timeTriggerMsg 延时任务信息
     */
    void addDelay(TimeTriggerMsg timeTriggerMsg);


    /**
     * 执行延时任务
     *
     * @param timeTriggerMsg 延时任务信息
     */
    void execute(TimeTriggerMsg timeTriggerMsg);

    /**
     * 修改延时任务
     *
     * @param oldTimeTriggerMsg 旧定时任务
     * @param timeTriggerMsg    编辑后的定时任务
     */
    void edit(TimeTriggerMsg oldTimeTriggerMsg, TimeTriggerMsg timeTriggerMsg);

    /**
     * 删除延时任务
     *
     * @param timeTriggerMsg 延时任务
     */
    void delete(TimeTriggerMsg timeTriggerMsg);
}
